package com.ktjiaoyu.crm;

import com.ktjiaoyu.crm.connller.UserRepository;
import com.ktjiaoyu.crm.connller.UserService;
import com.ktjiaoyu.crm.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@RunWith(SpringRunner.class)
@SpringBootTest


public class UserRepositoryTester {
        @Resource
    private UserRepository userRepository;
        @Resource
        private UserService userService;
        @Test
    public void testInsert(){
            User user=new User("JPA","123456",8L,1);
            userRepository.save(user);
        }
        @Test
    public void testGet(){//测试新增
            User user=userRepository.findById(2L).get();
            System.out.println("usrName:"+user.getUsrName());
        }

        @Test
    public void testFindByUsrNameLike(){
            List<User>list=userRepository.findByUsrNameLike("%s%");
            if (list!=null){
                for (User user:list){
                    System.out.println("UsrName:"+user.getUsrName());
                }
            }

        }
        @Test
    public void testFindPageByUsrRoleId(){  //测试按角色查询用户并分页
            int page=0,size=2;//分页的要素，页数从0开始
            //控制分页数据的排序，可以选择升序和降序
            Sort sort=Sort.by(Sort.Direction.DESC,"UsrId");
            //控制分页的辅助类，可以设置页码，每页的数据条数，排序等
            Pageable pageable= PageRequest.of(page,size,sort);
            Page<User>userPage=userRepository.findPageByUsrRoleId(8L,pageable);

            System.out.println("总记录数:"+userPage.getTotalElements());
            System.out.println("总页数"+userPage.getTotalPages());
            System.out.println("当前页数"+userPage.getNumber()+1);
            System.out.println("每页记录数"+userPage.getSize());
            System.out.println("当前页记录数"+userPage.getNumberOfElements());
            for (User user:userPage.getContent()){
                System.out.println("usrId"+user.getUsrId());
            }
        }
        @Test
    public void testFindPageByMap() {
            int page = 0, size = 2;//分页要素
            //控制分页数据的排序，可以选择升序和降序
            Sort sort = Sort.by(Sort.Direction.DESC, "usrId");
            Pageable pageable=PageRequest.of(page,size,sort);
            Map param=new HashMap();
            param.put("roleId",8L);
            Page<User> userPager=userService.findPageByMap(param,pageable);
            System.out.println("总记录数------>"+userPager.getTotalElements());
            System.out.println("总页数-------->"+userPager.getTotalPages());
            System.out.println("当前页数------>"+userPager.getNumber());
            System.out.println("每页记录数----->"+userPager.getSize());
            System.out.println("当前记录 ------>");
            for (User user:userPager.getContent()){
                System.out.println("usrId"+user.getUsrId());
            }
        }
}
